package com.qf.face.client.ui;

import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;

/**
 * @author 30909
 * 用java写出界面
 */
public class JFrameGUI extends JComponent {
    public JFrameGUI() {

    }

    /**
     * 要展示的对象
     */
    BufferedImage image = null;

    /**
     * 绘制界面的方法
     *
     * @param g
     */
    @Override
    public void paintComponent(Graphics g) {
        //2D图像
        Graphics2D g2d = (Graphics2D) g;
        /**
         * image 是读取摄像头的信息，如果没有读到，就展示黑色
         * 如果读到了 就现在
         */
        if (image == null) {
            g2d.setPaint(Color.BLACK);

            g2d.fillRect(0, 0, this.getWidth(), this.getHeight());
            g2d.fillRect(0, 0, this.getWidth(), this.getHeight());


        } else {
            g2d.drawImage(image, 0, 0, getWidth(), this.getHeight(), null);

        }

    }

    /**
     * 创建基本容器
     */
    public JFrame jFrame = null;

    public void createWin(String title, Dimension size) {
        jFrame = new JFrame();
        jFrame.setTitle(title);
        //启用此frame 的装饰
        jFrame.setUndecorated(true);
        //边框布局
        jFrame.getContentPane().setLayout(new BorderLayout());
        //设置内容布局
        jFrame.getContentPane().add(this, BorderLayout.CENTER);

        //设置尺寸
        jFrame.setSize(size);
        //设置可见性
        jFrame.setVisible(false);
    }

    public void setVisibleSelf(boolean flag) {
        jFrame.setVisible(flag);
    }

    @Override
    public boolean isShowing() {
        if (jFrame == null) {
            return false;
        }
        return jFrame.isVisible();
    }

    /**
     * 刷新界面
     */
    public void showImage(BufferedImage image) {

        this.image = image;
        this.repaint();
    }


}
